import Vue from 'vue'
import Router from 'vue-router'

Vue.use(Router)

var router = new Router({
  routes: [
    // 当前项目内部已经对 index.vue和 index.js文件做了默认的索引寻找配置，如果一个目录名字没有明确设置要找到的文件，那么优先寻找index.vue或index.js
    { path: '/login', name: 'login', component: () => import('@/views/login') },
    {
      path: '/home',
      name: 'home',
      component: () => import('@/views/home'),
      redirect: '/welcome', // 路由重定向
      children: [
        // 欢迎页面子路由配置
        { path: '/welcome', name: 'welcome', component: () => import('@/views/welcome') }
      ]
    }
  ]
})

// 设置前置路由守卫
router.beforeEach((to, from, next) => {
  // to: 即将访问的路由信息的对象，to.path代表要请求的路由地址信息
  // from: 从哪来的路由信息的对象， from.path 代表从哪来的路由地址信息
  // next: 回调函数，可以
  //       1. 停止  next(false)
  //       2. 转弯执行其他路由 next('/login')
  //       3. 继续执行当前路由 next()
  //       注意：如果没有其他要求，请求一定放行当前路由 执行  next()
  // console.log(from)
  // console.log(to)

  // 用户如果是"非登录"状态，并且其还要访问 非登录 页面，那么就强制登录去
  var token = window.sessionStorage.getItem('token')
  if (!token && to.path !== '/login') {
    // 路由导航到登录页面
    // this.$router.push({name:'login'})  // 不行
    // router.push({name:'login'})  // ok
    return next('/login') // ok
  }

  next()
})

export default router
